<?php
namespace App\Http\Controllers\Icon;

use DB;
use App\Common\excuteState;
use App\Models\ReplyM;
use App\Common\tbCommon;
use App\Models\UserM;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Database\QueryException;
use App\Models\CommentM;

class replyController extends Controller
{
    /**
     * 依据comment的id值 返回规定条件记录数 和偏移量的记录
     * @param bigint $cmtid,comment id
     * @param int $lmt,返回限制数
     * @param int $offset，检索偏移量
     */
    static public function loadRps($cmtid,$lmt,$offset){
           try{
                // 检索 reply数据
                $rpDatas=ReplyM::loadRps($cmtid, $lmt, $offset);
                  if(count($rpDatas)==0){return excuteState::OKwithEmpty();};
                //var_dump($rpDatas);
                // 获得用户id集合
                $userids=tbCommon::useridsFromComments($rpDatas);
                // 获得用户 数据
                $userInfo=UserM::getUserInfo($userids);
                
                // 将用户数据  改为 userid为键
                $cutUserInfo=tbCommon::cutArrayDimens($userInfo, 'userid');
                //dd($rpDatas);
                return excuteState::OKwithDatas(tbCommon::userInfo2Rps($rpDatas, $cutUserInfo));
                
            }catch (QueryException $e){
                // 检索查询失败
                return excuteState::selectError();
            }  
    }
    
    /**
     * 添加 评论记录 并更新 comment表
     * @param Request $request
     */
   static public function addRp(Request $request){
       DB::beginTransaction();
       try {     
           $instDatas=json_decode($request->input('rpInfo'),true);
//            $instDatas=['userid'=>2222,'rp_userid'=>111,
//                'commentid'=>13,'rpcontent'=>'ttttt ....'];

           //　添加评论记录
           $newRpId=ReplyM::addItem($instDatas);
           
           // 保存新的 评论记录的id
           Session::flash('newRpID',$newID);
           
           $cmtid=$instDatas['commentid'];
           // 更新评论数
           CommentM::plusRpNum($cmtid);
           DB::commit();
           return excuteState::OK();
       } catch (QueryException $e) {
           DB::rollBack();
           return excuteState::insertError();
       }
   }
   
   /**
    * 删除 回复信息
    * @param int $rpid
    * @param int $userid
    */
   static public function dltRp($rpid){
       DB::beginTransaction();
       try{
        ReplyM::dltItem($rpid);
        DB::commit();
       } catch (QueryException $e) {
           DB::rollBack();
           return excuteState::insertError();
       }
   }
   
    
}

?>